home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2000 September / maximum-cd-2000-09.iso / Vampire the Masquerade / vampire_demo.exe / Codex.nob / EffectDiscMajesty.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-22  |  2.7 KB  |  74 lines

  1. public class EffectDiscMajesty extends Codex {
  2.    private static final float TICK_RATE = 2.0F;
  3.    private static final int TICK_DURATION = 5000;
  4.    private static final float RADIUS = 384.0F;
  5.    private float[] position = new float[3];
  6.    private int padGuid;
  7.    private int _casterGuid;
  8.  
  9.    public void EndEffect() {
  10.       CodexThing pad = new CodexThing(this.padGuid);
  11.       pad.Remove();
  12.       ((Codex)this).KillAllTimers();
  13.    }
  14.  
  15.    public void restore(int flags) {
  16.       this.padGuid = CodexSequence.RestoreInt();
  17.       this._casterGuid = CodexSequence.RestoreInt();
  18.    }
  19.  
  20.    public void effectstarted(int actorGuid, int effectGuid, int creatorGuid, int duration) {
  21.       this._casterGuid = actorGuid;
  22.       CodexActor caster = new CodexActor(this._casterGuid);
  23.       ((CodexThing)caster).SpawnThing("yellowMagic");
  24.       this.padGuid = ((CodexThing)caster).SpawnThing("ankhsPadYellow");
  25.       float[] offset = new float[3];
  26.       offset[0] = offset[1] = offset[2] = 0.0F;
  27.       ((CodexThing)caster).AttachThing(this.padGuid, -1, offset, 1);
  28.       ((Codex)this).CaptureThing(actorGuid);
  29.       ((Codex)this).SetTimer(0.1F);
  30.    }
  31.  
  32.    public void killed(int guid, int causeID, int captureID) {
  33.       this.EndEffect();
  34.    }
  35.  
  36.    public void save(int flags) {
  37.       CodexSequence.SaveInt(this.padGuid);
  38.       CodexSequence.SaveInt(this._casterGuid);
  39.    }
  40.  
  41.    public void timer(int timerID, float arg0, float arg1, float arg2, float arg3) {
  42.       CodexActor caster = new CodexActor(this._casterGuid);
  43.       this.position = ((CodexThing)caster).GetPosition();
  44.       CodexCollision query = new CodexCollision();
  45.       query.IgnoreAll();
  46.       query.AcceptType(0);
  47.       if (!Codex.IsPlayerGuid(((Codex)caster).GetGUID())) {
  48.          query.AcceptType(7);
  49.       }
  50.  
  51.       int numResults = query.ThingsInSphere(this.position, 384.0F, ((Codex)caster).GetGUID());
  52.  
  53.       for(int i = 0; i < numResults; ++i) {
  54.          int result = query.GetResult(i);
  55.          if (result != ((Codex)caster).GetGUID()) {
  56.             CodexActor victim = new CodexActor(result);
  57.             int effectGuid = victim.FindActorEffect("ef_disc_majesty2");
  58.             if (effectGuid != 0) {
  59.                victim.ExpandActorEffect(effectGuid, 5000, false);
  60.             } else {
  61.                victim.AddActorEffectByLevel("ef_disc_majesty2", 5000, 0, ((Codex)caster).GetGUID(), 4);
  62.             }
  63.          }
  64.       }
  65.  
  66.       query.Free();
  67.       ((Codex)this).SetTimer(2.0F);
  68.    }
  69.  
  70.    public void effectended(int actorGuid, int effectGuid, int creatorGuid, int reason) {
  71.       this.EndEffect();
  72.    }
  73. }
  74.